package com.sg.dto.integration.component;

import com.sg.common.dto.BaseDto;
import com.sg.dto.integration.component.MessageLocationNumDto;
import com.sg.dto.integration.component.RealTimeMonitoringBehaviorInstructionDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @desc AddMessageNumComReqDto
 * @使用场景
 */
@Data
public class AddMessageNumComReqDto extends BaseDto implements Serializable {

    /**
     * mqtt消息主题 CHAT_MESSAGE:沟通消息 MESSAGE_CHANNEL:消息通道 IMPORTANT_MESSAGE:强提醒消息 MESSAGE_NUM:消息位置数量
     */
    @NotNull(message = "mqtt消息主题不能为空")
    @ApiModelProperty("mqtt消息主题")
    private String messageTopic;

    /**
     * webSocket后端调用地址
     */
    @NotNull(message = "webSocket后端调用地址不能为空")
    @ApiModelProperty("webSocket后端调用地址")
    private String websocketAddress;

    /**
     * webSocket后端调用端口
     */
    @NotNull(message = "webSocket后端调用端口不能为空")
    @ApiModelProperty("webSocket后端调用端口")
    private String websocketPort;

    /**
     * webSocket后端调用协议
     */
    @NotNull(message = "webSocket后端调用协议不能为空")
    @ApiModelProperty("webSocket后端调用协议")
    private String websocketAgreement;

    /**
     * websocket服务访问账号
     */
    @NotNull(message = "websocket服务访问账号不能为空")
    @ApiModelProperty("websocket服务访问账号")
    private String websocketUserId;

    /**
     * websocket服务访问密码
     */
    @NotNull(message = "websocket服务访问密码不能为空")
    @ApiModelProperty("websocket服务访问密码")
    private String websocketUserPassword;

    @ApiModelProperty("消息位置数量列表")
    private List<MessageLocationNumDto> messageLocationNumList = new ArrayList<>();

    @ApiModelProperty("实时监听行为指令列表")
    private List<RealTimeMonitoringBehaviorInstructionDto> realTimeMonitoringBehaviorInstructionList = new ArrayList<>();

}
